\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[margin=2.5cm]{geometry}
%\usepackage{listings}
%\usepackage{tikz}
%\usepackage{algorithmic}
%\usepackage{algorithm}
%\usepackage{multicol}
%\usepackage{color}
%\usepackage{amssymb}
%\usepackage{amsmath}
%\usepackage{amsthm}

%\theoremstyle{theorem}
%\newtheorem{theorem}{Teorema}
%\theoremstyle{lemma}
%\newtheorem{prop}{Proposición}
%\theoremstyle{definition}
%\newtheorem*{definicion}{Definición}

%\lstset{
%	language=C++,
%	basicstyle=\footnotesize,	% print whole listing small
%	keywordstyle=\bfseries,
%	numbers=left,
%	numberstyle=\footnotesize,
%	breaklines=true,
%        identifierstyle=,		% nothing happens
%	stringstyle=\ttfamily,		% typewriter type for strings
%	showstringspaces=false}		% no special string spaces

% \lstinputlisting{src/g01e12.cpp}


\title{ 75.67 \\ Sistemas Automáticos de \\ Diagnostico y Detección de Fallas I \\ Trabajo Práctico 1}
\date{}
\author{
	\begin{tabular}{ll}
	79992 & Czelada, Esteban Alejandro \\
	87696 & Cabrera, Laura \\
	89672 & Celentano, Agustin
	\end{tabular}
}
\begin{document}

\maketitle

\abstract{
	El presente informe describe la los archivos que conforman un formulario de análisis de viabilidad de un sistema experto, conformado por cincuenta preguntas que abarcan cuatro dimensiones de la solución (plausibilidad, justificación, éxito y adecuación).
	La base matemática se compone de la definición de los rangos difusos, su operatoria y el calculo de la media armónica y media geométrica de los mismo.
	 }

\section{Arquitectura}
El sistema esta conformado por una base de datos (\emph{mysql}), una porción del sistema corre en el servidor y se encarga de interactuar con la base de datos y con el cliente (\emph{php}), la totalidad del tratamiento matemático y las advertencias visuales se realiza en el cliente (\emph{java script}), y la capa de presentación se ha realizada en su totalidad con \emph{html5} y \emph{css}.

Suponiendo que el servidor \emph{php} se esta ejecutando en \emph{localhost} y esperando conexiones en el puerto \emph{8000}; y respetando la estructura de directorios provista en el archivo adjunto, la manera de cargar el formulario seria:


\emph{http://localhost:8000/includes/viabilidadForm.php?ponderacion=ponderacionEstandard}


\section{La base de datos}
Las dos tablas principales son \emph{Caracteristica} y \emph{PonderacionEstandard} cuya junta genera la tabla dada en la documentación, permitiendo a su vez variar la ponderación de una encuesta con la utilización de una tabla de ponderación diferente.

También en la base de datos existen las entidades \emph{Resultado} y \emph{Medicion} que representan el resultado de un proyecto en una determinada fecha, y el valor otorgada a cada dimensión en un resultado, respectivamente. La solución completa debería poder enviar y almacenar los resultados de la ponderación en caso de ser requerido, para permitir la trazabilidad de las encuestas.

Los \emph{scripts} para generar la base de datos son:
\begin{itemize}
	\item \emph{scripts/db.mysql.tp1.create.sql}: Define la base de datos.
	\item \emph{scripts/db.mysql.tp1.caracteristica.intial.sql}: Es la carga inicial de las características.
	\item \emph{scripts/db.mysql.tp1.ponderacionEstandard.initial.sql}: Es la carga inicial de la peso de cada respuesta y su umbral.
\end{itemize}

\section{El sistema del lado del servidor}
El código necesario para proveer la solución está contenido en \emph{includes/viabilidadForm.php}, el cual realiza la tarea de construir el formulario a partir de una consulta a la base de datos que permite indicar en el parámetro \emph{ponderacion} cual de las tablas deben utilizarse (la solución solo tiene una \emph{ponderacionEstandard}). La construcción del formulario es el resultado de unir tres archivos html; \emph{viabilidadForm.header.html}, \emph{viabilidadForm.footer.html} y \emph{viabilidadForm.ponderacionEstandard.body.auto.html}, este ultimo es la porción generada automáticamente (parte del script prevee que si el archivo ya existe no se vuelva a generar).

El resto del código permite la construcción simplificada del sistema.

El directorio \emph{classes} contiene clases \emph{php} para encapsular la base de datos \emph{DB.class.php}, \emph{Entidad.class.php}, \emph{Caracteristica.class.php}, \emph{Ponderacion.class.php}, \emph{Medicion.class.php}, \emph{Resultado.class.php}. Además en el mismo directorio existe el archivo \emph{hml\_element.class.php} que provee las facilidades para construir elementos \emph{html} y asociarlos de una manera similar a \emph{java script}.

\section{El sistema del lado del cliente}
Al usuario de se le presenta un conjunto de preguntas separadas por dimensiones, y una solapa extra denominada resultados. Los archivos que son enviados al cliente son el formulario resultado del código \emph{php}, una hoja de estilos \emph{styles/formularios.css}, \emph{scripts/svg.js} que da las herramientas mínimas para la construcción de gráficos \emph{svg}, y \emph{scripts/ponderacion.js}; este ultimo contiene el encapsulamiento de los rangos difusos, la construcción de los mismos a partir de los valores de lenguaje natural, booleanos o numéricos, todo la operatoria matemática, y el código necesario para los cálculos de los resultados.

Existe una gran dependencia entre el código \emph{java script} y el formulario \emph{html} generado, ya que los valores de umbral y peso son agregados a las preguntas en atributos específicos. Para permitir que el código del cliente tenga acceso a ellos.

\section{Pendientes}
Para una solución útil y de valor agregado es necesario que sea posible almacenar resultados de encuestas anteriores, a fin de permitir el seguimiento del proyecto.

La presentación de los resultados requiere mejor trabajo para presentar los datos de manera más amigable.

\end{document}

